home *** CD-ROM | disk | FTP | other *** search
-
- import java.awt.Canvas;
- import java.awt.Dimension;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Toolkit;
- import java.net.URL;
- import java.net.MalformedURLException;
- import java.awt.MediaTracker;
- import java.awt.Component;
-
- public class ImageViewer
- extends Canvas
- {
- private Image image;
- private String fileName;
-
- public ImageViewer()
- throws MalformedURLException
- {
- fileName = null;
- }
-
- public ImageViewer(String str)
- throws MalformedURLException
- {
- setFileName(str);
- }
-
- public ImageViewer(URL url)
- {
- setURL(url);
- }
-
- public ImageViewer(Image img)
- {
- setImage(img);
- }
-
- public void setFileName(String str)
- throws MalformedURLException
- {
- fileName = str;
- setURL(new URL(fileName));
- }
-
- public String getFileName()
- {
- return (fileName);
- }
-
- public void setURL(URL url)
- {
- fileName = null;
- setImage(getToolkit().getImage(url));
- }
-
- public void setImage(Image img)
- {
- fileName = null;
- image = img;
- waitForImage(this, image);
- }
-
- public void paint(Graphics g)
- {
- g.drawImage(image, 0, 0, this);
- }
-
- public Dimension preferredSize()
- {
- if (image != null)
- return (new Dimension(image.getWidth(this), image.getHeight(this)));
- return super.preferredSize();
- }
-
- public static void waitForImage(Component c, Image i)
- {
- MediaTracker tracker;
-
- try
- {
- tracker = new MediaTracker(c);
- tracker.addImage(i, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException e)
- {
- }
- }
-
- }
-